Repository navigation
enrich(sudoku,#13410): prose interpretative Backtracking/Genetic/GraphColoring C# (densite 1172/842/862 -> 1286/1327/1301) - #16027
Conversation
…hColoring C# (densite 1172/842/862 -> 1286/1327/1301) 19 cellules markdown d'interpretation placees apres la cellule de code lue, ancres sur les sorties executees reelles (exception C.2 markdown-only, exec = code, 0 erreur) : decomposition de l'explosion combinatoire du backtracking (122 -> 490304 -> 12625368 appels pour 45/22/17 indices) ; contrat chromosome/fitness du GA et effet representation (81 genes : 0 erreur en 12727 ms ; 9 permutations : facteur 68 sur facile, 6 erreurs sur moyenne) ; reformulation coloration de graphe, lecture des compteurs noeuds/backtracks, benchmark difficile (4356440 noeuds naifs contre 1202 DSATUR, facteur 209) et graphe QuikGraph (81 sommets / 810 aretes / degre 20 = 8+8+4). Cellules code byte-identiques a origin/main ; enrich_quality_ci rc=0 x3 ; detect_repeated_prose sans finding nouveau. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…netic, 09 GraphColoring) Markdown ajoutee cote C# deplace les blob SHAs ; --update --pair passe en derniere operation, SHAs verifies = git rev-parse HEAD:<path> pour les 6 cotes. Check local : 157 paires, OK=154, les 3 DRIFT restants (Probas-16, SW-2, SW-7) sont pre-existants hors perimetre. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
…uctural fold (#16112) The existing organ (#15901) measures source VOLUME. A cell whose source folds entirely into a comment is invisible to it by construction: on the founding case (PR #16097, Lean-18 cell 40cb37d5) the head GROWS 1132 -> 1728 chars because the same write that stripped the newlines appended a 639-char recovery note, so the magnitude gate stops before any floor. The BLOCKING notebook-cell-source-parses guard is blind too -- a fully commented cell parses clean -- which is why it stayed green on a cell whose code had disappeared. Adds two structural signals to the SAME check-run, no new fast-lane wiring: * `emptied` matched cell whose statement count went from > 0 to 0. * `orphan-output` non-empty outputs with 0 statements and no IPython magic (base-free by construction -- the issue's 3rd criterion). The existing exemptions speak about the base->head RELATION, so they arbitrate the comparative signal only; `orphan-output` is intra-cell and stays true whatever happens to the code elsewhere. Both exemption fractions measure 0.00 on the founding case, so nothing was suppressed. `_scan_line` / `_strip_ipython_magics` / `_is_python_kernel` are imported from check_cell_source_parses rather than reimplemented, so the organs cannot disagree about the same cell. Criterion 1 of the issue (unterminated-item count) is REFUTED by measurement, not implemented: per-character serialization already exists on main (GenAI/Texte/21_LoRA_FineTuning.ipynb cell 69b296cb -> 802 unterminated items, 10 statements, real output, healthy). Histogram over the 11970 code cells of main's 953 Python notebooks: {0: 11970, 1: 1, 802: 1}. The signal is withdrawn rather than shipped with a threshold; the folds it targeted are covered twice without it (code-first fold -> the blocking syntax guard; comment-first fold -> `emptied`). Calibration: 0 structural findings on main's full Python corpus; 0 structural findings on the 18 notebooks changed by 12 merged PRs (#16080, #16071, #16069, #16067, #16041, #16039, #16027, #16024, #16021, #16020, #16013, #16012). A first sweep without the no-magic guard flagged 6 cells, all `# comment` + `!python`/`%pip` -- the magic IS the producer, so the guard is measured necessity, not caution. Evidence: 30 tests green in the file, 89 across the sibling organ files; `--self-test` OK with BOTH founding-case replays firing (volume #15901 and structure #16110); live end-to-end run at #16097's head reports the exact measured finding with RC=1. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ent C# Le redressement P16 retire 8 cellules de prose ajoutees par la campagne de densite sur le cote C# des 4 paires Sudoku, sans toucher les jumeaux Python. Les blob/content sha C# derivent donc, et `Twin parity audit (#8057)` rougissait sur 4 paires qui etaient OK au base-ref origin/main. Audit firsthand AVANT re-baseline (un --update aveugle consecrerait une regression) : les 8 ids de cellule supprimes n'existent que dans des commits de campagne, aucun n'est du contenu pre-campagne. - 7 cellules (Sudoku-01 x1, Sudoku-03 x2, Sudoku-09 x4) ajoutees par d28e23e du 2026-09-14 (#16027, prose interpretative C#) - 1 cellule (Sudoku-14 x1) ajoutee par 1f32e89 du 2026-09-03 (#14368) Cote Python : recorded_python_sha == current_python_sha sur les 4 paires, donc le jumeau Python n'a pas bouge. Le redressement annule exactement l'enrichissement qui avait cause la derive. Preuve : check_twin_parity.py --check rend [OK] sur les 4 paires apres update. Le registre ne recoit que 4 enregistrements d'audit (SHA + date + auteur), aucun notebook n'est modifie par ce commit. Co-Authored-By: Claude Code <noreply@anthropic.com>
… supprimees (#17051) * fix(density,#17040): redressement paquet P16 — 8 cellules redondantes supprimees Suppression de cellules markdown "lecture" ajoutees par la campagne #13410 qui doublonnaient une lecture pre-existante du meme output de cellule code. Regle appliquee : (a) une sortie = AU PLUS UNE lecture, (c) SUPPRIMER les doublons d'une lecture pre-existante. Cellules conservees intactes. Notebooks modifies (5/12 du paquet) : - MGS-30-ScatterSearch-Decomposition : 1 cellule (lecture du temoin) - Sudoku-01-Backtracking-Csharp : 1 cellule (lecture 122->490304->12625368) - Sudoku-03-Genetic-Csharp : 2 cellules (lectures MRV/GA intermediaires) - Sudoku-09-GraphColoring-Csharp : 4 cellules (lectures SudokuGraph/MRV/DSATUR/QuikGraph) - Sudoku-14-BDD-Csharp : 1 cellule (lecture integration BDD) 7 autres notebooks du paquet deja propres (MGS-17, MGS-20, Sudoku-06/07/11, Argumentum I2, Lean-14b) : la campagne n'y a ajoute aucune cellule redondante avec une lecture pre-existante. Markdown-only : aucune re-execution requise (exception C.2). Cellules code, outputs, execution_count et metadata intacts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(density,#17066): Sudoku-03 interpretations dupliquees retitrees — experiences distinctes (chromosome par cellules vs par permutations) Regime #17066 : les deux occurrences d'« Interpretation des resultats » lisent des sorties differentes (test SudokuCellsChromosome vs test SudokuPermutationsChromosome) — retitrage distinctif, aucun texte modifie. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(density,#17040): P16 — re-baseline parite jumelle apres redressement C# Le redressement P16 retire 8 cellules de prose ajoutees par la campagne de densite sur le cote C# des 4 paires Sudoku, sans toucher les jumeaux Python. Les blob/content sha C# derivent donc, et `Twin parity audit (#8057)` rougissait sur 4 paires qui etaient OK au base-ref origin/main. Audit firsthand AVANT re-baseline (un --update aveugle consecrerait une regression) : les 8 ids de cellule supprimes n'existent que dans des commits de campagne, aucun n'est du contenu pre-campagne. - 7 cellules (Sudoku-01 x1, Sudoku-03 x2, Sudoku-09 x4) ajoutees par d28e23e du 2026-09-14 (#16027, prose interpretative C#) - 1 cellule (Sudoku-14 x1) ajoutee par 1f32e89 du 2026-09-03 (#14368) Cote Python : recorded_python_sha == current_python_sha sur les 4 paires, donc le jumeau Python n'a pas bouge. Le redressement annule exactement l'enrichissement qui avait cause la derive. Preuve : check_twin_parity.py --check rend [OK] sur les 4 paires apres update. Le registre ne recoit que 4 enregistrements d'audit (SHA + date + auteur), aucun notebook n'est modifie par ce commit. Co-Authored-By: Claude Code <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: myia-po-2025 <po-2025@myia.local>
Grain: DEEP/notebook-dotnet — lane myia-po-2026:CoursIA — prev: LIGHT/tooling #15939
Tranche densite #13410 — Sudoku .NET (01 Backtracking / 03 Genetic / 09 GraphColoring)
Rotation R6 : apres ML (#16007), DecInfer .NET (#16012), SMT/Z3 (#16021) et Search/VRP (#16024), cette tranche couvre la famille Sudoku, jamais touchee aujourd'hui, en genre notebook-dotnet. Candidats choisis sur mesure LIVE (
pedagogy_density.pysurorigin/mainf9bbefc7f) — le baseline #13410 est un snapshot Phase-1 fige, jamais retro-fit. Collision verifiee : le seul PR Sudoku ouvert (#15999) retire une dll et touche Sudoku-11-Choco uniquement.Sudoku-01-Backtracking-Csharp.ipynbSudoku-03-Genetic-Csharp.ipynbSudoku-09-GraphColoring-Csharp.ipynb19 cellules markdown d'interpretation placees APRES la cellule de code lue, chacune ancre sur sa sortie executee :
BacktrackingDotNetSolverrend la combinatoire visible —122->490304->12625368appels de recherche pour45/22/17indices ( passer de 36 a 64 cases vides multiplie l'exploration par cent mille) ; lecture croisee avec le temps (0,9ms /285ms /8,7s).TargetSudoku/GetSolution) ; fitness-erreurs= paysage sans gradient ; population dynamique + parallelisme TPL (fitness = fonction pure) ; representation 81 genes (generalite sans contrainte) ; le test a0erreur mais12727ms — la meme grille que le backtracking de Sudoku-01 resolvaient en0,9ms (facteur ~14000) ; representation 9 permutations (lignes valides par construction) : facteur 68 sur facile (186ms) mais6erreurs restantes sur moyenne — colonnes et blocs sans encodage genetique.49noeuds /12backtracks /2,01ms) ; MRV (domaine minimal = decision gratuite maintenant) ; DSATUR (diversite de la saturation, pas seulement intensite) ; protocole benchmark ; facile =4201backtracks naifs contre14MRV ; difficile =4356440noeuds naifs contre1202DSATUR, facteur 209 (2650,67ms ->12,67ms) ; integration SudokuHelper (0 erreur, deux chronometres au perimetre distinct) ; tranche QuikGraph reconciliee avec le jumeau Python (81sommets /810aretes =nx.sudoku_graph(), degre20 = 8 + 8 + 4, graphe connexe,0conflit /810aretes).Validation
json.dumps ensure_ascii=False, indent=1, assert avant ecriture)origin/mainenrich_quality_ci.py --base --headdetect_repeated_prose.pypedagogy_density.py(LIVE, post-commit)Notebooks deja executes (exec = code, 0 erreur) -> exception C.2 markdown-only, aucune re-execution requise.
Twin registry
Les trois notebooks sont les cotes C# de paires enregistrees dans
scripts/notebook_tools/twin_pairs.d/:Sudoku-01 Backtracking,Sudoku-03 Genetic,Sudoku-09 GraphColoring. Le markdown ajoute deplace les blob SHAs -> rebaseline--update --pairpasse en derniere operation (commita0e74ad12), SHAs verifies =git rev-parse HEAD:<path>pour les 6 cotes (Python inchanges, C# = nouveaux blobs). Check local :157 paires | OK=154, les 3 DRIFT restants (Probas-16, SW-2, SW-7) sont pre-existants hors perimetre.See #13410
🤖 Generated with Claude Code